Skip to navigation | Skip to main content | Skip to footer
Menu
Menu

School of Computer Science BCS accreditation 2021 - 2026

Computer Systems Engineering BEng (Hons) - 2.1.1 Knowledge and understanding of facts, concepts, principles


Return to programme overview.

COMP10120 First Year Team Project

Enquiry based learning topics related to development of web based applications and group work.

Assesement : Individual coursework, Presentation, Lab work

COMP11120 Mathematical Techniques for Computer Science

It teaches areas of mathematics required for various fields of computer science in the form of the concept of proof, formal logic, probability, recursion and induction, relations, and linear algebra.

Assesement : Examination, Individual coursework

COMP11212 Fundamentals of Computation

The unit consists of two halves. The first introduces regular expressions, automata and grammars with an emphasis on the relationships between the formalisms and their use to solve problems. The second half uses a simple WHILE language to introduce the topics of complexity, correctness and computability.

Assesement : Examination, Individual coursework

COMP12111 Fundamentals of Computer Engineering

Covers basic logic design, combinatorial and sequential systems and processor design (memory, CPU and I.O.).

Assesement : Examination, Lab work

COMP13212 Data Science

This course is an introduction to data science, where data science refers to a set of concepts, techniques, and theories for extracting knowledge and information from data using computers.

Assesement : Examination, Lab work

COMP15111 Fundamentals of Computer Architecture

The course introduces the concepts involved in Fundamentals of Computer Architecture. Its aim is to enable the student to develop the skills required to comprehend Computer Systems, be they terminology, models, methodologies, structures (or topologies), timing, number representation and a general introduction to basic computer systems. Fundamental concepts are taught through lectures, example classes and labs

Assesement : Examination, Individual coursework

COMP15212 Operating Systems

Covers the architecture of principles of modern operating systems, including memory, processes, security, virtualisation, file systems. High level concepts cover abstraction, caching, hashing. Introduces the C programming language as a vehicle for exploring these concepts at OS level.

Assesement : Examination, Individual coursework

COMP16321 Introduction to Programming 1

This course is an introduction to programming the fundamental concepts surrounding this.

Assesement : Examination, Individual coursework, Lab work

COMP16412 Introduction to Programming 2

We teach the general principles of object oriented programming including encapsulation, inheritance, polymorphism, abstraction, inner classes and interfaces, in addition to the particularities of the Java language such as the Java Collections Framework and JavaFX.

Assesement : Examination, Individual coursework, Lab work, Workshops

COMP22111 Processor Microarchitecture

The module aims to give a view of the role of a digital hardware designer, taking an idea and implementing it as a silicon chip. A processor is a representative example of logic used in today's chips, also giving further insight into how computers actually work. Students investigate leading edge approaches to processor design as well as being introduced to approaches current in the research domain.

Assesement : Examination, Lab work

COMP22712 Microcontrollers

This course is fully lab-based, focussing on the use of microprocessors/microcontrollers for simple control and interfacing applications, and develops understanding of the programming and operation of the ARM processor including operating system aspects such as interprocess communication and security.

Assesement : Lab work

COMP23311 Software Engineering 1

Building and testing large open source systems

Assesement : Examination, Individual coursework, Group coursework

COMP23412 Software Engineering 2

Students learn to build and maintain complex enterprise applications that follow established programming design patterns such as the Model View Controller (MVC). The theoretical principles of the MVC are put in practice on a widespread Web framework, ie Spring.

Assesement : Examination, Group coursework, Lab work

COMP25212 System Architecture

The aims of this course are to introduce the most important system architecture approaches, and to give a wider understanding of how real systems operate and, from that understanding, the ability to optimise their use. Fundamental concepts are taught through lectures, example classes and labs

Assesement : Examination, Lab work

COMP26020 Programming Languages & Paradigms

The course unit covers essential knowledge, concepts, principles in relation to different aspects of programming languages, including different paradigms (eg, imperative vs declarative) as well as compilation techniques and current trends.

Assesement : Examination, Individual coursework, Lab work

COMP26120 Algorithms and Data Structures

This course considers essential facts, concepts, principles and theories related to Algorithms and Data Structures, topics which are at the core of Computer Science. This includes theoretical tools include algorithmic complexity analysis and fundamental algorithmic design principles.

Assesement : Examination, Individual coursework, Lab work

COMP30040 Third Year Project Laboratory

The knowledge gained during the programme is demonstrated by the student in executing the project

Assesement : Individual coursework

COMP32211 Implementing System-on-Chip Designs

This course covers the translation of algorithms into a realisable hardware design. The practical part of the course develops higher level models into Verilog HDL and thence to an FPGA. In the lectures the process of mapping designs to ASICs is studied with emphasis on practicalities such as trading chip area, delays, power, etc. to meet a specification. Emphasis is also given to areas which are used extensively in the practical work, particularly simulation, debugging and verification.

Assesement : Examination, Individual coursework, Lab work

COMP35112 Chip Multiprocessors

Lectures on these topics: how to construct a parallel computer, shared memory vs. distributed memory; how to program a parallel computer, data sharing vs. message passing (vs. functional programming); multithreading; cache coherence; synchronisation mechanisms; hardware support for synchronisation; lock-free data structures; OpenMP/MPI; thread-level speculation; transactional memory; memory consistency; attached accelerators and their programming; functional programming and dataflow.

Assesement : Examination, Lab work